/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved.
 */
package com.icinfo.cloud.provider.punish.common.nonlitigation.service;

import com.icinfo.cloud.provider.punish.common.nonlitigation.dto.CaseNonLitigationExecutePageRequest;
import com.icinfo.cloud.provider.punish.common.nonlitigation.dto.CaseNonLitigationExecuteRequestDto;
import com.icinfo.cloud.provider.punish.common.nonlitigation.dto.NonLitigationExecuteConditionRecordQueryDto;
import com.icinfo.cloud.provider.punish.common.nonlitigation.dto.NonLitigationExecuteResultSaveDto;
import com.icinfo.cloud.provider.punish.common.nonlitigation.model.CaseNonLitigationExecuteRecord;
import com.icinfo.cloud.provider.punish.common.nonlitigation.vo.CaseNonLitigationExecuteDetailVo;
import com.icinfo.cloud.provider.punish.common.nonlitigation.vo.CaseNonLitigationExecuteRecordDetailVo;
import com.icinfo.cloud.provider.punish.common.nonlitigation.vo.CaseNonLitigationExecuteRecordVo;
import com.icinfo.framework.common.web.Result;

import java.util.List;
import java.util.Map;

/**
 * 描述: 非诉执行记录表 case_non_litigation_execute_record 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年04月07日
 */
public interface ICaseNonLitigationExecuteRecordService {

    /**
     * 描述：行政非诉智审网上立案
     *
     * @param requestDto 请求dto
     * @return {@link String }
     * @author shishengyao
     * @date 2022/04/10
     */
    Map<String, Object> nonLitigationExecuteRegister(CaseNonLitigationExecuteRequestDto requestDto);

    /**
     * 描述：根据案件id查询非诉执行信息
     *
     * @param caseId 用例id
     * @return {@link CaseNonLitigationExecuteRecord }
     * @author shishengyao
     * @date 2022/04/09
     */
    CaseNonLitigationExecuteRecord getCaseNonLitigationExecuteRecordByCaseId(String caseId);

    /**
     * 描述：非诉执行情况记录（自动）
     *
     * @param record 记录
     * @return {@link Map<String, Object> }
     * @author shishengyao
     * @date 2022/05/28
     */
    Map<String, Object> saveNonLitigationExecuteAutoRecord(CaseNonLitigationExecuteRecord record);

    /**
     * 描述：非诉执行分页查询
     *
     * @param pageRequest 页面请求
     * @return {@link List<CaseNonLitigationExecuteRecordVo> }
     * @author shishengyao
     * @date 2022/04/25
     */
    List<CaseNonLitigationExecuteRecordVo> getCaseNonLitigationExecuteVoList(CaseNonLitigationExecutePageRequest pageRequest);

    /**
     * 描述：非诉执行详细情况
     *
     * @param queryDto
     * @return {@link CaseNonLitigationExecuteDetailVo }
     * @author shishengyao
     * @date 2022/05/28
     */
    CaseNonLitigationExecuteDetailVo getNonLitigationExecuteDetail(NonLitigationExecuteConditionRecordQueryDto queryDto);

    /**
     * 描述：非诉执行情况记录详情
     *
     * @param queryDto 查询dto
     * @return {@link CaseNonLitigationExecuteRecordDetailVo }
     * @author shishengyao
     * @date 2022/05/28
     */
    CaseNonLitigationExecuteRecordDetailVo getNonLitigationExecuteConditionRecord(NonLitigationExecuteConditionRecordQueryDto queryDto);

    /**
     * 描述：根据案件id查询非诉执行信息
     *
     * @param nonLitigationCaseId 非诉讼案件id
     * @return {@link CaseNonLitigationExecuteRecord }
     * @author shishengyao
     * @date 2022/12/07
     */
    CaseNonLitigationExecuteRecord getCaseNonLitigationExecuteRecordByNonLitigationCaseId(String nonLitigationCaseId);

    /**
     * 描述：保存裁决结果
     *
     * @param saveDto 保存dto
     * @return {@link CaseNonLitigationExecuteRecordDetailVo }
     * @author shishengyao
     * @date 2022/12/06
     */
    Result<String> saveDecisionResult(NonLitigationExecuteResultSaveDto saveDto);
}
